Methods and systems for transferring client device data over a network

ABSTRACT

Systems and methods for the transfer of client device data on a network are described. One described method comprises causing non-time-sensitive client device data to be identified on a client device, causing the non-time-sensitive client device data to be prepared for output and stored by the client device, and causing the non-time-sensitive client device data to be output with a request signal upon satisfaction of a condition.

FIELD OF THE INVENTION

The present invention relates generally to methods and systems for datatransfer and, more particularly, to methods and systems for transferringclient device data over a network.

BACKGROUND

When transferring data, it may be desirable to decrease the number oftotal transmissions made between communicating devices. Similarly, itmay be desirable to decrease the total bandwidth used for low prioritydata transmissions over a network. In the context of such a network,data on a client device in communication with the network may be ofinterest to a server device also in communication with the network, butmay not be time-sensitive. This data can include system configurationdata and user interaction data. Such data may be transferred to theserver device from the client device, but each such transmissionincreases the total number of transmissions and decreases the amount oftotal bandwidth available for other transmissions. Also, each suchtransmission uses resources of both the client device and the serverdevice.

SUMMARY

Embodiments of the present invention provide methods and systems fortransferring client device data over a network. One embodiment of thepresent invention comprises causing non-time-sensitive client devicedata to be identified on a client device, causing the non-time-sensitiveclient device data to be prepared for output and stored by the clientdevice, and causing the non-time-sensitive client device data to beoutput with a request signal upon satisfaction of a condition.

Another embodiment of the present invention comprises generating aninstruction signal, the instruction signal comprising at least a firstinstruction to prepare non-time-sensitive client device data foroutputting, a second instruction to store the non-time-sensitive clientdevice data, and a condition for outputting the non-time-sensitiveclient device data with a request signal, outputting the instructionsignal to a client device, receiving the request signal from the clientdevice, identifying the non-time-sensitive client device data in therequest signal, and extracting the non-time-sensitive client devicedata.

These exemplary embodiments are mentioned not to limit or define theinvention, but to provide examples of embodiments of the invention toaid understanding thereof. Exemplary embodiments are discussed in theDetailed Description, and further description of the invention isprovided there. Advantages offered by the various embodiments of thepresent invention may be further understood by examining thisspecification.

BRIEF DESCRIPTION OF THE FIGURES

These and other features, aspects, and advantages of the presentinvention are better understood when the following Detailed Descriptionis read with reference to the accompanying drawings, wherein:

FIG. 1 is a block diagram illustrating an exemplary environment in whichone embodiment of the present invention may operate; and

FIG. 2 is a flowchart, illustrating a method for data transfer accordingto one embodiment of the present invention.

DETAILED DESCRIPTION Introduction

Embodiments of the present invention comprise methods and systems fortransferring client device data over a network. There are multipleembodiments of the present invention. By way of introduction andexample, one exemplary embodiment of the present invention, provides amethod for transferring client device data over a network. For example,in one embodiment of the present invention, a request signal, such as anHTTP GET, requesting access to web page is received at a server devicefrom a client device. The server device receiving the request signal maymaintain the web page. The server device may output an instructionsignal to the client device in response to receiving the request signal.The instruction signal may include the web page requested and aninstruction, such as a JavaScript program, embedded in the web page. Theweb page and instruction may be output to the client device over anetwork, such as the Internet.

In one embodiment, the instruction, when received by the client device,causes the client device to identify non-time-sensitive client devicedata. Examples of non-time-sensitive client device data compriseconfiguration data and user interaction data. The client device is thencaused by the instruction to store and prepare for output thenon-time-sensitive client device data. The non-time-sensitive clientdevice data is then caused by the instruction to be output with arequest signal upon satisfaction of a condition. The condition maycomprise, for example, storing the client device data for apredetermined length of time, storing a predetermined amount of clientdevice data, and/or generation of another request signal by the clientdevice.

In one embodiment, non-time-sensitive client device data is stored inone or more HTTP cookies. Upon satisfaction of the condition, the HTTPcookie or cookies containing the non-time-sensitive client device dataare output with a request, such as an HTTP request, from the clientdevice. The HTTP cookie or cookies may be included as extra parameterswith the request output to the server device. The HTTP cookie may thenbe reset by the server device after the non-time-sensitive client devicedata is extracted from the HTTP cookie by the server device. In anotherembodiment, the non-time-sensitive client device data is individuallymarked and stored in memory associated with an application that isrunning on the client device and is output based on a condition set bythe instruction.

This introduction is given to introduce the reader to the generalsubject matter of the application. By no means is the invention limitedto such subject matter. Exemplary embodiments are described below.

System Architecture

Referring now to the drawings in which like numerals indicate likeelements throughout the several figures, FIG. 1 is a block diagramillustrating an exemplary environment in which one embodiment of thepresent invention may operate. The system 100 shown in FIG. 1 comprisesmultiple client devices 102 a-n in communication with a server device104 over a network 106. The network 106 shown comprises the Internet. Inother embodiments, other networks, such as an intranet may be used.Moreover, methods according to the present invention may operate withina single computer.

The client devices 102 a-n shown each comprise a computer-readablemedium, such as a random access memory (RAM) 108, read only memory(ROM), and/or a storage device (such as a hard drive), coupled to aprocessor 110. The processor 110 executes computer-readable program codestored in memory 108 or other computer readable medium. Such processorsmay include a microprocessor, an ASIC, and state machines. Suchprocessors include, or may be in communication with, media, for examplecomputer-readable media, which stores instructions that, when executedby the processor, cause the processor to perform actions. Embodiments ofcomputer-readable media include, but are not limited to, an electronic,optical, magnetic, or other storage or transmission device capable ofproviding a processor, such as the processor 110 of client 102 a, withcomputer-readable instructions. Other examples of suitable mediainclude, but are not limited to, a floppy disk, CD-ROM, DVD, magneticdisk, memory chip, ROM, RAM, an ASIC, a configured processor, alloptical media, all magnetic tape or other magnetic media, or any othermedium from which a computer processor can read instructions. Also,various other forms of computer-readable media may transmit or carryinstructions to a computer, including a router, private or publicnetwork, or other transmission device or channel, both wired andwireless. The instructions may comprise code from anycomputer-programming language, including, for example, C, C++, C#,Visual Basic, Java, Python, Perl, and JavaScript.

Client devices 102 a-n may also include a number of external or internaldevices such as a mouse, a CD-ROM, DVD, a keyboard, a display, or otherinput or output devices. Examples of client devices 102 a-n are personalcomputers, digital assistants, personal digital assistants, cellularphones, mobile phones, smart phones, pagers, digital tablets, laptopcomputers, Internet appliances, and other processor-based devices. Ingeneral, a client device 102 a may be any type of processor-basedplatform that is in communication with a network 106 and that interactswith one or more application programs. Client devices 102 a-n mayoperate on any operating system, such as an operating system capable ofsupporting a browser or browser-enabled application, such as Microsoft®Windows® or Linux. The client devices 102 a-n shown include, forexample, personal computers executing a browser application program suchas Microsoft Corporation's Internet Explorer™, Netscape CommunicationCorporation's Netscape Navigator™, and Apple Computer, Inc.'s Safari™.

The client device 102 a further comprises client device data 111, suchas configuration data. In one embodiment, the configuration data may belocated in the client device's 102 a memory 108. The configuration datamay also be located in an associated storage device, such as a harddrive. The configuration data can relate to the configuration of theclient device and may comprises a physical characteristic of the clientdevice 102 a or of an application being executed on the client device102 a, such as a physical size of a display device screen, an audiosetting, or a type of pointing device being operated by the user 112 a.The configuration data may further comprise a user 112 a inputcharacteristic of the client device 102 a or of an application beingexecuted on the client device 102 a, such as a user 112 a preference forreceiving, previewing or opening email messages, a user 112 a set homepage on the Internet, or other such characteristic. In the embodimentshown, the user 112 a communicates with the client device 102 a througha user interaction 114. The user interaction 114 may comprise a requestor a command entered through an external device such as a keyboard or amouse.

Through the client devices 102 a-n, users 112 a-n can communicate overthe network 106 with each other and with other systems and devicescoupled to the network 106. As shown in FIG. 1, a server device 104 isalso coupled to the network 106. Similar to the client devices 102 a-n,the server device 104 shown comprises a processor 116 coupled to acomputer-readable memory 118. Program code in the server device's 104computer-readable memory 118 may comprise instructions to implement themethods described herein. The processor 116 executes computer-readableprogram code stored in the memory 118. Server device 104, depicted as asingle computer system, may be implemented as a network of computerprocessors. Examples of a server device 104 are servers, mainframecomputers, networked computers, a processor-based device, and similartypes of systems and devices. Client processor 110 and the serverprocessor 116 can be any of a number of computer processors, such asprocessors from Intel Corporation of Santa Clara, Calif. and MotorolaCorporation of Schaumburg, Ill.

As shown in FIG. 1, memory 118 has stored therein an article 120, suchas a web page, an electronic mail message, an image, or a sound filehosted by the server device 104. An article 120 may include, forexample, web pages of various formats, such as HTML, XML, XHTML,Portable Document Format (PDF) files, electronic mail messages, instantmessenger messages, and word processor, database, and applicationprogram document files, audio, video, or any other documents orinformation of any suitable type whatsoever made available on a network106 (such as the Internet), a personal computer, or other computing orstorage means. The embodiments described herein are described generallyin relation to HTML files or documents, but embodiments may operate onany suitable type of article 120, including any type of image. Thearticle 120 may be located in an associated storage device.

Memory 118 further has stored therein an instruction 122. Theinstruction 122 shown in FIG. 1 can comprise a JavaScript program. Inother embodiments the instruction 122 may be a computer program writtenin another computer language or may be electrical signals. Theinstruction 122 may be embedded in the document. For example, aJavaScript program instruction 122 may be embedded in the HTML code of aweb page article 120. The instruction 122 can instruct the client device102 a to perform certain actions once it has been output over thenetwork 106 to the client device 102 a.

The article 120 can be displayed on the client device 102 a in responseto a request signal 130 generated by the client device 102 a. Therequest signal 130 can be generated in response to the user interaction114 from the user 112 a. For example, the user interaction 114 maycomprise a request by the user 112 a for access to the article 120, suchas by clicking on a hyperlink associated with a web page article 120 theuser 112 a wishes to view using a web browser application being run bythe client device 102 a. The request signal 130 may comprise, forexample, an HTTP GET or an HTTP POST request signal 130.

The request signal 130 generated by the client device 102 a may beoutput to the server device 104 over the network 106. The request signal130 shown in FIG. 1 comprises data from which the server device 104 canascertain that the client device 102 a is requesting access to thearticle 120. In response to receiving the request signal 130, theprocessor 116 can retrieve the article 120 from the memory 118 orstorage device. The processor 116 can also retrieve the instruction 122from the memory 118 or storage device in response to receiving therequest signal 130. The processor 116 can then generate an instructionsignal 136 comprising the article 120 and the instruction 122. Forexample, the instruction signal 136 may comprise the content of auser-requested web page article and a JavaScript program instruction.

The instruction signal 136 generated by the server device 104 can beoutput to the client device 102 a over the network 106. Upon receivingthe instruction signal 136, the client device 102 a can display thearticle 120 on an associated display device for viewing by the user 112a. The processor 110 can execute the instruction 122 in the instructionsignal 136. The instruction 122 shown in FIG. 1 comprises a JavaScriptprogram. The JavaScript program instruction 122 may instruct the clientdevice 102 a to identify client device data on the client device 102 a.In the embodiment shown in FIG. 1, the instruction 122 instructs theclient device 102 a to identify client device data that is nottime-sensitive.

Non-time-sensitive client device data can be any data that a delay inreceipt by the server device 104 will not materially affect the user's112 a experience in accessing the article 120, in interacting with thenetwork 106, or in communicating with the server device 104.Non-time-sensitive client device data may comprise configuration dataand user interaction data. Configuration data may comprise the size ofthe client device's 102 a display and any other relevant client device102 a configuration information. Client device data may also compriseuser interaction data. User interaction data may comprise the portion ofthe web page article 120 visible on the client device's 102 a display,information about what web pages, email messages, or other articles 120the user 112 a has viewed, the time associated with viewing the article120, how a user 112 a views the article 120, whether the user 112 afollowed a hyperlink contained in the article 120 by clicking on thehyperlink, whether the user 112 a accessed an attachment to an emailmessage article 120, or other information associated with a user's 112 ainteraction with the article 120, with other articles or entities on thenetwork 106, or with the server device 104.

The instruction 122 shown in FIG. 1 further instructs the client device102 a to prepare for output and store the non-time-sensitive clientdevice data. Client device data that is time-sensitive may be output bythe client device 102 a in a request signal 130 generated solely foroutputting the time-sensitive client device data. The non-time-sensitiveclient device data can be prepared for output by setting it in an HTTPcookie. In other embodiments, the client device data may be prepared foroutput using a suitable alternative method or device. For example, inone embodiment the non-time-sensitive client device data may beindividually marked and stored in memory associated with an application,such as a web browser or an email program, that is currently running onthe client device 102 a, and may be output at a later time according toa condition defined by the instruction 122.

The non-time-sensitive client device data may also include expirationdata provided by the instruction 122. Expiration data includesinformation regarding the expiration of the non-time-sensitive clientdevice data. For example, the expiration data may indicate that thenon-time-sensitive client device data expires after the current browsersession or after a certain period of time. In one embodiment, thenon-time-sensitive client device data may not be output if it hasexpired according to the expiration data.

The instruction 122 in the embodiment shown in FIG. 1 further instructsthe client device 102 a to output the prepared non-time-sensitive clientdevice data with a request signal 130 upon satisfaction of a condition.In the embodiment shown, the condition may comprise the generation ofthe next request signal 130 by the client device 102 a in response touser interaction 114 by the user 112 a. The condition may comprise adifferent or an additional criterion, such as the storage andpreparation for output of n pieces of non-time-sensitive client devicedata in the client device 102 a, where n is a predetermined positiveinteger. The condition may alternatively or additionally comprise thestorage of the non-time-sensitive client device data in the clientdevice 102 a for a specified period of time, or the closing of anapplication the user 112 a used to request the article 120 from theserver device 104.

The client device 102 a in the embodiment shown can output to the serverdevice 104 the non-time-sensitive client device data set in the preparedHTTP cookie included with the next-generated user request in thenext-generated request signal 130. The next-generated user requestsignal may comprise a request for access to another article from serverdevice 104 and can be an HTTP GET request signal. The next-generatedrequest signal may comprise input to an article and can be an HTTP POSTrequest signal. The non-time-sensitive client device data can beincluded in the request signal as extra parameters. The server device104 receives the next-generated request signal 130 and can examine itfor the presence of client device data. If, as in the embodiment shownin FIG. 1, the next-generated request signal 130 comprises client devicedata, the processor 116 of the server device 104 can retrieve the clientdevice data from the request signal 130.

The client device data in the embodiment shown in FIG. 1 can then bestored in a database 132 in communication with the server device 104. Inone embodiment, the server device 104 may later use the client devicedata stored in the database 132. For example, the server device maylater user the stored client device data to improve server device's 104system performance, learn about the activities and interests of the user112 a, and to aggregate the usage patterns of all users of the article120.

In the embodiment shown, the processor 116 can reset the HTTP cookieupon storing the client device data in the database 134. For example,the processor 116 may reset the HTTP cookie by setting a cookieexpiration date that has already passed. The processor 116 shown canthen process the next-generated user request in the next-generatedrequest signal 130. In one embodiment, the server device 104 maygenerate a new instruction signal 136 that may comprise the instruction122 a new instruction, or the reset HTTP cookie, depending upon theclient device data received. As such, the embodiment described withrespect to FIG. 1 may be iterative in nature, and capable of repetition.

It should be noted that the present invention may comprise systemshaving different architecture than that which is shown in FIG. 1. Forexample, in some systems according to the present invention, the serverdevice 104 and the client device 102 a may comprise a single physical orlogical server, or the server device 104 may comprise a plurality ofserver devices that function with a load balancer device and storeinformation related to different documents. The system 100 shown in FIG.1 is merely exemplary, and is used to explain the exemplary methodsshown in FIG. 2.

Process

Various methods may be implemented in the environment shown in FIG. 1and other environments, according to the present invention. Methodsaccording to the present invention may be implemented by, for example, aprocessor-executable program code stored on a computer-readable medium.

FIG. 2 is a flowchart, illustrating a method 200 for data transferaccording to one embodiment of the present invention. As seen in block210, a client device, such as the client device 102 a of FIG. 1, canoutput a request signal for access to an article. For example, therequest signal can be generated by a user selecting a hyperlink to a webpage article displayed using a web browser application on a clientdevice. The request signal may be, for example, an HTTP GET or and HTTPPOST request signal. The request signal may be output to a server, suchas the server device 104 shown in FIG. 1.

As shown in block 220, the server outputs an instruction signal. Theinstruction signal may include the content of a user requested web pagearticle and an instruction, and may be generated in response to theserver's 104 receipt of the request signal 130. The instruction maycomprise a JavaScript program such as the instruction 122 of FIG. 1. Theinstruction may be embedded in the article 120. For example, aJavaScript instruction may be embedded in the HTML code of the requestedweb page article.

As shown by block 230, the instruction can cause the client device 102 ato identify client device data and specifically non-time-sensitiveclient device data. The non-time-sensitive client device data maycomprise the client device data discussed in relation to FIG. 1. Forexample, the client device data may comprise configuration data or userinteraction data. Configuration data can be, for example, the size ofthe client device's 102 a display, what type of pointing device or otherperipheral devices are connected to the client device 102 a, and anyother relevant client device 102 a configuration information. Userinteraction data can be, for example, information about what web pages,email messages, or other articles 120 the user 112 a has viewed, thetime associated with viewing the article 120, how the user 112 a viewsthe article 120, whether the user 112 a followed a hyperlink containedin an article, or any other information associated with a user's 112 ainteraction with an article or entities on the network 106, or with theserver device 104.

As shown in block 240, the instruction 122 causes the non-time-sensitiveclient device data identified by the client device 102 a to be preparedfor output and stored by the client device. For example, thenon-time-sensitive client device data may be set in one or more HTTPcookies and stored in a random access memory such as the memory 108 oran associated storage device, such as a hard drive, according to theJavaScript program instruction 122. Alternatively, thenon-time-sensitive client device data may be individually marked andstored in memory associated with an application, such as a web browseror email program, currently running on the client device.

The instruction 122, as shown in block 250, can cause thenon-time-sensitive client device data that has been prepared for outputto be output with a subsequent request signal upon satisfaction of acondition. The subsequent request signal may comprise the next-generatedrequest signal described in relation to FIG. 1. This request signal maycomprise a request for access to another article from a server deviceand can be an HTTP GET request signal. This request signal mayalternatively comprise input to an article and can be an HTTP POSTrequest signal or any other suitable HTTP signal. The condition maycomprise a storing of the non-time-sensitive client device data for apredetermined length of time, a storing of a predetermined amount ofnon-time-sensitive client device data, and/or a generation of a requestsignal by the client device. For example, the condition may comprise arequest by the user 112 a of the client device 102 a for access toanother article maintained by the server. Alternatively or additionally,the condition may comprise the collection of n pieces ofnon-time-sensitive client device data, or the storing of thenon-time-sensitive client device data for a specified period of time.

For example, the non-time-sensitive client device data may be outputwith a request signal upon the occurrence of the earliest of acollection of 10 pieces of non-time-sensitive client device data by theclient device 102 a, a passing of 48 hours since the non-time-sensitiveclient device data was stored by the client device 102 a, or ageneration of a time-sensitive request signal. The condition can alsoinclude checking any expiration data associated with thenon-time-sensitive client device data to determine if it has expired. Inone embodiment, the non-time-sensitive client device data is not outputif it has expired. If the condition is met, the non-time-sensitiveclient device data can be included with the subsequent request signal.In one embodiment, the non-time-sensitive client device data can beincluded in the subsequent request signal as extra parameters.

As shown in block 260, the server 104 examines the received requestsignal 130 for the presence of client device data. For example, theserver's processor 116 may perform this function by noting the presenceof any HTTP cookies attached to the request signal 130. The processor116 may then examine the HTTP cookies to determine if they compriseclient device data. As noted in block 270, upon finding the clientdevice data with the request signal 130, the server 104 retrieves thenon-time-sensitive client device data. For example, the server 104 mayextract the non-time-sensitive client device data from an HTTP cookie.The server 104 may then cause the HTTP cookie to be reset. For example,the server may set a cookie expiration date that has already passed toensure that the HTTP cookie containing the non-time-sensitive clientdevice data is not resent.

In the embodiment shown in FIG. 2, the server may use thenon-time-sensitive client device data obtained for various purposes. Forexample, the server may wish to determine the time the user 112 a spentreviewing an article, the portions of the article the user 112 aconcentrated on or that were visible on the user's 112 a graphical userinterface. The server may also wish to learn which hyperlinks on a webpage article the user 112 a followed, and the total time required toload the article on the user's 112 a client device 102 a.

General

The foregoing description of the preferred embodiments of the inventionhas been presented only for the purpose of illustration and descriptionand is not intended to be exhaustive or to limit the invention to theprecise forms disclosed. Numerous modifications and adaptations thereofwill be apparent to those skilled in the art without departing from thespirit and scope of the present invention.

1. A computer-implemented method comprising: causing, with a clientdevice that comprises a computing device, non-time-sensitive clientdevice data to be identified on the client device that accesses aresource from a server device; the non-time-sensitive client device datato be provided to the server device and comprising user interaction dataassociated with access of the resource by the client device; whereindelayed receipt of the non-time-sensitive client device data by theserver device does not materially affect a client device user'sexperience in accessing the resource; causing, via a processor of theclient device, the non-time-sensitive client device data to be preparedfor output and stored by the client device; and causing thenon-time-sensitive client device data to be provided by the clientdevice to the server device with a first request signal that is outputfrom the client device to the server device subsequent to thenon-time-sensitive data being identified and prepared and uponsatisfaction of a condition.
 2. The method of claim 1, furthercomprising receiving, at the server device, a second request signal fromthe client device, wherein the second request signal requests access toan article and is received before the first request signal.
 3. Themethod of claim 2, further comprising outputting, from the serverdevice, to the client device, an instruction signal in response to thesecond request signal, wherein the instruction signal causes thenon-time-sensitive client device data to be identified on the clientdevice, prepared for output and stored by the client device, andprovided with the first request signal upon satisfaction of thecondition.
 4. The method of claim 3, wherein the instruction signalcomprises a JavaScript program.
 5. The method of claim 3, wherein theinstruction signal is embedded in the resource.
 6. The method of claim1, wherein causing the non-time-sensitive client device data to beprepared for output comprises causing the non-time-sensitive clientdevice data to be set in at least one HTTP cookie.
 7. The method ofclaim 6, further comprising causing the HTTP cookie to be reset.
 8. Themethod of claim 1, further comprising causing the non-time-sensitiveclient device data to be stored in a client device application's memory.9. The method of claim 1, further comprising causing thenon-time-sensitive client device data to be included in extra parametersof the request signal.
 10. The method of claim 1, wherein the conditioncomprises at least one of a generation of the first request signal bythe client device, storing the non-time-sensitive client device data fora predetermined length of time, or storing a predetermined amount ofnon-time-sensitive client device data.
 11. The method of claim 10,wherein the first request signal comprises time-sensitive data.
 12. Acomputer-implemented method comprising: sending, from a client device toa server device, a first request signal for an article; and receiving,at the client device, from the server device, the article and aninstruction signal; wherein the instruction signal causes the clientdevice to identify non-time-sensitive client device data, prepare thenon-time-sensitive client device data for output, and output thenon-time-sensitive client device data with a second request signal tothe server device, upon satisfaction of a condition; wherein thenon-time-sensitive data comprises user interaction data associated withthe client device accessing the article; wherein delayed receipt of thenon-time-sensitive client device data by the server device does notmaterially affect a client device user's experience in accessing thearticle.
 13. The method of claim 12, wherein the condition comprises atleast one of a generation of the request signal by the client device,storing the non-time-sensitive client device data for a predeterminedlength of time, storing a predetermined amount of non-time-sensitiveclient device data, and satisfaction of expiration data.
 14. Anon-transitory computer-readable storage medium containing program code,the program code comprising: program code for causing non-time-sensitiveclient device data to be identified on a client device that accesses aresource from a server device; the non-time-sensitive client device datato be provided to the server device and comprising user interaction dataassociated with access of the resource by the client device; whereindelayed receipt of the non-time-sensitive client device data by theserver device does not materially affect a client device user'sexperience in accessing the resource; program code for causing thenon-time-sensitive client device data to be prepared for output andstored by the client device; and program code for causing thenon-time-sensitive client device data to be provided to the serverdevice with a first request signal that is output from the client deviceto the server device subsequent to the non-time-sensitive data beingidentified and prepared and upon satisfaction of a condition.
 15. Acomputer-implemented method, comprising: providing a request signal fora resource, from a client computing device to a server system; receivingat the client computing device, in response to providing the requestsignal, the resource accompanied by an instruction; using theinstruction to identify, with the client computing device,non-time-sensitive client device data, and to prepare for output andstore the non-time-sensitive device data on the client computing device,wherein delayed receipt of the non-time-sensitive client device data bythe server device does not materially affect a client device user'sexperience in accessing the resource; determining that satisfaction of acondition has occurred; in response to determining that satisfaction ofthe condition has occurred, providing a request signal and thenon-time-sensitive information from the client computing device to theserver system.
 16. The method of claim 15, wherein the resourcecomprises an article.
 17. The method of claim 16, wherein theinstruction signal is embedded in the article.
 18. The method of claim15, further comprising preparing for output and storing a plurality ofpieces of non-time-sensitive client device data.
 19. The method of claim15, wherein the provided request signal comprises an HTTP request. 20.The method of claim 15, wherein the condition comprises expiration of aspecified time period.
 21. The method of claim 15, wherein the conditioncomprises closing of an application that was used to request theresource.
 22. The method of claim 15, further comprising checkingexpiration data for the non-time-sensitive client information, and usingthe expiration data to determine whether the non-time-sensitive clientinformation can be provided to the server system.